|
Программируем по-русски
|
Основная задача Глагола — дать человеку возможность воплощать свои мысли на языке, близком к его родному языку. Издатель Глагола
|
(*~\Глагол\Отделы\Поле~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*) (**) ОТДЕЛ Памятка; (****************************************************************************** * НАЗНАЧЕНИЕ: хранилище для ПолеПамятки ******************************************************************************) ИСПОЛЬЗУЕТ Надел, Цепь ИЗ "..\Иное\", Набор ИЗ "..\Иное\", Настройки ИЗ "..\Обмен\", Читать ИЗ "..\Обмен\", Писать ИЗ "..\Обмен\"; ПОСТ ВсегоСтрок = 30; ВИД ДЦепь = ДОСТУП К ЦЕПЬ; Доступ-=ДОСТУП К Вид; Вид-=НАБОР(Набор.Вид) имя:ДЦепь; строк-:ЦЕЛ; строки-:РЯД ВсегоСтрок ИЗ ДЦепь; КОН; ПЕР памятки:Набор.Список; (******************************************************************************) ЗАДАЧА ДобавитьСтроку-(памятка:Доступ; цепь-:ЦЕПЬ); ПЕР строка:ЦЕЛ; дцепь:ДЦепь; УКАЗ ЕСЛИ цепь = "" ТО ВОЗВРАТ КОН; строка:=0; КОЛЬЦО ЕСЛИ строка >= памятка.строк ТО (* создаём наверху новую строку *) ЕСЛИ строка >= ВсегоСтрок ТО УМЕНЬШИТЬ(строка) КОН; памятка.строк:=строка+1; СОЗДАТЬ(дцепь,цепь); ВЫХОД КОН; ЕСЛИ Цепь.Сравнить(памятка.строки[строка]^,цепь) = 0 ТО (* переносим строку наверх *) дцепь:=памятка.строки[строка]; ВЫХОД КОН; УВЕЛИЧИТЬ(строка) КОН; ПОКА строка > 0 ВЫП памятка.строки[строка]:=памятка.строки[строка-1]; УМЕНЬШИТЬ(строка) КОН; памятка.строки[0]:=дцепь КОН ДобавитьСтроку; (******************************************************************************) ЗАДАЧА ПохожаяСтрока-(памятка:Доступ; цепь-:ЦЕПЬ):ЦЕЛ; ПЕР строка:ЦЕЛ; УКАЗ ОТ строка:=0 ДО памятка.строк-1 ВЫП ЕСЛИ Цепь.ПохожееНачало(цепь,памятка.строки[строка]^) ТО ВОЗВРАТ строка КОН КОН; ВОЗВРАТ -1 КОН ПохожаяСтрока; (******************************************************************************) ЗАДАЧА Найти-(имя-:ЦЕПЬ):Доступ; (* Поиск памятки *) ПЕР памятка:Доступ; звено:Набор.Звено; УКАЗ звено:=Набор.ПервоеЗвено(памятки); ПОКА звено # ПУСТО ВЫП памятка:=звено.данные(Доступ); ЕСЛИ памятка.имя^ = имя ТО ВОЗВРАТ памятка КОН; звено:=звено.след КОН; СОЗДАТЬ(памятка); СОЗДАТЬ(памятка.имя,имя); Набор.ВКонецСписка(памятки,памятка); ВОЗВРАТ памятка КОН Найти; (******************************************************************************) (* ******* чтение и запись в поток ******* *) (******************************************************************************) ЗАДАЧА ПисатьПамятку(поток:Писать.Поток; памятка:Доступ); ПЕР строка:ЦЕЛ; УКАЗ Настройки.ПисатьСтроку(поток,"памятка",памятка.имя^); Настройки.ПисатьЦел(поток,"строк",памятка.строк); ОТ строка:=0 ДО памятка.строк-1 ВЫП Настройки.ПисатьСтроку(поток,"",памятка.строки[строка]^) КОН КОН ПисатьПамятку; (******************************************************************************) ЗАДАЧА ЧитатьПамятку(поток:Читать.Поток):Доступ; ПЕР памятка:Доступ; строка:ЦЕЛ; имя:ЦЕПЬ[200]; УКАЗ СОЗДАТЬ(памятка); Настройки.ЧитатьСтроку(поток,имя); СОЗДАТЬ(памятка.имя,имя); памятка.строк:=Настройки.ЧитатьЦел(поток); ОТ строка:=0 ДО памятка.строк-1 ВЫП Настройки.ЧитатьСтроку(поток,имя); СОЗДАТЬ(памятка.строки[строка],имя) КОН; ВОЗВРАТ памятка КОН ЧитатьПамятку; (******************************************************************************) ЗАДАЧА ЧитатьНастройки-(поток:Читать.Поток); ПЕР памятка,памяток:ЦЕЛ; УКАЗ Набор.ОчиститьСписок(памятки); памяток:=Настройки.ЧитатьЦел(поток); ОТ памятка:=0 ДО памяток-1 ВЫП Набор.ВКонецСписка(памятки,ЧитатьПамятку(поток)) КОН КОН ЧитатьНастройки; (******************************************************************************) ЗАДАЧА ПисатьНастройки-(поток:Писать.Поток); ПЕР звено:Набор.Звено; УКАЗ Настройки.ПисатьЦел(поток,"памяток",памятки.звеньев); звено:=Набор.ПервоеЗвено(памятки); ПОКА звено # ПУСТО ВЫП ПисатьПамятку(поток,звено.данные(Доступ)); звено:=звено.след КОН КОН ПисатьНастройки; (******************************************************************************) УКАЗ Набор.ОчиститьСписок(памятки) КОН Памятка. |
▲ Вопросы, замечания и предложения высылайте на atimopheyev@yahoo.com
|
|